import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    app,
    settings,
    user
  },
  getters,
  state: {
    filePreview: {},
    globalLoading: false
  },
  mutations: {
    setStoreValue: function(state, payload) {
      for (const key in payload) {
        // eslint-disable-next-line no-prototype-builtins
        if (state.hasOwnProperty(key)) {
          state[key] = payload[key]
        }
      }
    }
  }
})

export default store
